home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / comm / mail / YamNet.lha / rexxtra12.lha / rexx / Diff.rexx < prev    next >
OS/2 REXX Batch file  |  1990-03-18  |  2KB  |  76 lines

  1. /* Diff.rexx */
  2.  
  3. /*
  4.      Format
  5.  
  6.        DIFF <file1> <file2> [BUFFER <n>] [LINES <n>] [QUICK]
  7.                 [TO <file3>]
  8.  
  9.   Report differences between files.
  10.  
  11. */
  12.  
  13. signal on break_c; signal on break_d; signal on break_e; signal on break_f
  14. call addlib 'rexxextra.library',-20,-30,0
  15.  
  16. facility = 'Diff'
  17. retcode = 0
  18. template = "QUICK/S,BUFFER/K,LINES/K,TO/K,FILE1/A,FILE2/A"
  19. dtemplate = "FILE1/A,FILE2/A,TO/K,BUFFER/K,LINES/K,QUICK/S"
  20. args. = ''
  21.  
  22. parse arg g_c
  23. do while g_c='?'
  24.   options prompt dtemplate': '  /* this template is      */
  25.   parse pull g_c        /* displayed to the user */
  26.   if g_c='?' then do
  27.     g_s=sourceline(3)
  28.     if pos('/*',g_s)=0 then break; if pos('*/',g_s)>0 then break
  29.     say
  30.     g_s=sourceline(4)
  31.     do i=5 while pos('*/',g_s)=0; say g_s; g_s=sourceline(i); end
  32.     say
  33.     end
  34.   end
  35. interpret Cparse(g_c,template,'args')
  36. if args.ERRCODE > 1 then do; say facility'-E-BADARGS,' args.ERRTEXT; exit 5; end
  37.  
  38. cmd = ''
  39. program = 'c:DIFF'
  40.  
  41. if args.QUICK then cmd = cmd '-w -p'
  42. if args.BUFFER ~= '' then do
  43.   if ~datatype(args.BUFFER,'N') then do
  44.     say facility'-E-BADNUM, BUFFER arg must be numeric'
  45.     exit 10
  46.     end
  47.   cmd = cmd '-b' || args.BUFFER
  48.   end
  49. if args.LINES ~= '' then do
  50.   if ~datatype(args.LINES,'N') then do
  51.     say facility'-E-BADNUM, LINES arg must be numeric'
  52.     exit 10
  53.     end
  54.   cmd = cmd '-l' || args.LINES
  55.   end
  56. if args.TO ~= '' then cmd = cmd '-o' || args.TO
  57. cmd = cmd args.FILE1 args.FILE2
  58. program cmd
  59.  
  60. GetOut:
  61. exit retcode
  62.  
  63. break_c:
  64. break_d:
  65. break_e:
  66. break_f:
  67.   say facility'-E-BREAK, Control-C interrupt'
  68.   exit 20
  69. failure:
  70.   say facility'-E-FAIL, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  71. syntax:
  72.   say facility'-E-SYNTAX, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  73. error:
  74.   say facility'-E-ERROR, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  75.  
  76.